package com.ruoyi.cs.mapper;

import java.util.HashMap;
import java.util.List;
import com.ruoyi.cs.domain.TMineClear;
import com.ruoyi.cs.domain.TUserRank;
import org.apache.ibatis.annotations.Param;

/**
 * 排雷记录Mapper接口
 * 
 * @author liuzhisheng
 * @date 2022-12-13
 */
public interface TMineClearMapper 
{
    /**
     * 查询排雷记录
     * 
     * @param id 排雷记录主键
     * @return 排雷记录
     */
    public TMineClear selectTMineClearById(String id);

    /**
     * 查询排雷记录列表
     * 
     * @param tMineClear 排雷记录
     * @return 排雷记录集合
     */
    public List<TMineClear> selectTMineClearList(TMineClear tMineClear);

    /**
     * 新增排雷记录
     * 
     * @param tMineClear 排雷记录
     * @return 结果
     */
    public int insertTMineClear(TMineClear tMineClear);

    /**
     * 修改排雷记录
     * 
     * @param tMineClear 排雷记录
     * @return 结果
     */
    public int updateTMineClear(TMineClear tMineClear);

    /**
     * 删除排雷记录
     * 
     * @param id 排雷记录主键
     * @return 结果
     */
    public int deleteTMineClearById(String id);

    /**
     * 批量删除排雷记录
     * 
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteTMineClearByIds(String[] ids);

    /**
     * 扫雷统计
     * @param startTime
     * @param endTime
     * @return
     */
    public HashMap mineClearProfitCount(@Param("startTime") String startTime, @Param("endTime") String endTime);

    /**
     * 判断用户是否存在进行中的全名挑战
     * @param userId
     * @return
     */
    public long judgeOnlineCount(String userId);

    /**
     * 根据用户、状态获取挑战信息
     * @param userId
     * @return
     */
    public TMineClear getTMineClearByUserId(@Param("userId") String userId,@Param("status") int status);

    /**
     * 判断用户是否存在进行中的全名挑战
     * @param userId
     * @return
     */
    public TMineClear getTMineClearByUserIdOn(@Param("userId") String userId);

    /**
     * 扫雷排名
     * @param type
     * @return
     */
    public List<TUserRank> mineClearRanking(String type);
}
